1. Field of the Invention
The present invention relates to the field of networked computer systems. More specifically, the invention relates to a method and apparatus for remote installation of network drivers and software in a computer system.
2. Background Information
Computer systems often communicate information with sources external to the computer, for example, over one or more networks. This information is frequently sent as smaller packets of information and transported over various network topologies, such as “Ethernet”. The routing of the information is by various formats, or network protocols, for example, TCP/IP. In order for an end computer to receive and utilize the information, the computer must have the appropriate network protocol driver (hereinafter termed protocol driver). A protocol driver is usually connected in a computer's internal communication path between the network connection and an end application.
FIG. 1 is a block diagram illustrating media access control (MAC) unit to application communication according to the prior art. The block diagram is a simplified illustration of a computer system utilizing the Microsoft® Windows operating systems (e.g., Windows 95, Windows 98, Windows NT, etc.) (Manufactured by Microsoft Corp. of Redmond, Wash.). Information is initially received, for example, as packets, from the network by a media access control unit (MAC) 120. The MAC 120 is used to control access to the physical transmission medium on a network. The MAC 120 routes the information to the NDIS 115. The NDIS 115 is a network driver interface. The NDIS 115 receives the information and routes it to the appropriate protocol driver(s) shown as protocol driver(s) 110 (e.g., a TCP/IP driver). The protocol driver 110 receives the information and routes it to the WINSOCK 105. The WINSOCK is a interface program (Manufactured by Microsoft Corp. of Redmond, Wash.). The WINSOCK 105 receives the information and routes it to the appropriate application(s) 100.
At certain times it is useful to insert a different protocol driver into the existing communication path (hereinafter termed the binding) between the MAC 120 and the protocol driver(s) 110. When a new protocol driver is added to the existing binding, a new binding must be established which incorporates the new protocol driver. The new binding links the new protocol driver to the MAC 120.
FIG. 2 is a block diagram illustrating a prior art technique of inserting an intermediate driver in the system of FIG. 1. The intermediate driver is used to install a new protocol driver on an existing computer system. This method is more fully described in the “README” file for the ImSamp intermediate driver sample, IMSAMP.SYS. (Available from Microsoft Corp. of Redmond, Wash.).
In this method, the intermediate protocol driver 125 is bound to the NDIS 115. At Number 1, the MAC 120 routes information to the NDIS 115. At Number 2, the NDIS 115 receives the information and routes it to the intermediate protocol driver 125. Within the intermediate protocol driver 125, the information is passed to the inserted protocol driver 130 through the new binding. From the inserted protocol driver 130, the information is converted to the MAC layer format by MAC 135 in the intermediate protocol driver 110. At Number 3, the information is then passed from the MAC 135 to the NDIS 115 to enable continued routing of the information to the protocol driver 110. From the protocol driver 110, the information passes to the WINSOCK 105 and on to the appropriate application(s) 100.
The above-described prior art method has several limitations that impact its utility, particularly when implemented on networks with large numbers of computers. First, the intermediate protocol driver software must be manually installed on each computer. An individual, for example, a systems technician, must physically go to every computer and manually load the intermediate protocol driver software and the new protocol driver. This may involve a substantial time investment when many computers are involved simply to load the software. It also results in lost productivity for the computer operator as in-use applications must be exited during installation. Second, to enable the operation of the new protocol driver, the computer must be shut down and restarted. The necessity of shutdown and restart also requires that in-use applications be saved and exited. Where large numbers of computers are involved, this may result in large losses of productivity and can be disruptive of services provided by the network.
It should be noted that some operating systems provide mechanisms to remotely distribute software over the network. These systems generally include a server to which several computers are connected. In a remote distribution, the new software is loaded onto the server and then distributed to each of the individual computers, thus reducing installation time. However, even with the remote distribution, the installation of an intermediate protocol driver requires a user (e.g., a system technician) exit existing in-use applications, perform the installation, shut down the computer system, and then restart the computer system to enable operation of the new protocol driver.